package day05;

import java.util.Arrays;

public class Demo04 {
	public static void main(String[] args) {
		// 调用doSome2时, 无参数要传递
		// doSome2(new int[0]);
		// test(1, 3, 5);
		test();
		//		test(1);
		//		test(1, 2);
	}

	// 方法有多个相同类型的参数
	// 如果参数数量小于等于3个, 可单独定义参数
	public static void doSome(int a, int b, int c) {
		System.out.println("Demo04.doSome(int, int, int)");
	}

	// 如果参数数量多于3个, 建议将参数封装
	public static void doSome2(int[] arr) {
		if (arr != null) {
			System.out.println(arr.length);
			System.out.println(Arrays.toString(arr));
		}
	}

	// 方法的参数数量不确定, 但能确定类型
	// 从JDK1.5开始, 变长参数(不定长参数)
	// 调用方法时, 可以传入任意数量的指定类型参数
	// 不定长参数可以当作数组操作
	// 调用变长参数方法, 没有传入任何参数时
	// 变长参数在方法内部会作为一个长度为0的数组存在, 不会为null
	// 但如果传入null, 还是会引发空指针异常
	public static void test(int... arr) {
		System.out.println(arr);
		System.out.println(arr.length);
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}

}
